#include"sort.h"
void swap(int& parent,int& child)
{
  int tem=parent;
  parent=child;
  child=tem;
}
void AdjustDown(int* p,int parent,int nums)
{
  int child=2*parent+1;
  while(child<nums)
  {
    if(child+1<nums&&p[child]<p[child+1])
      child=child+1;
    if(p[parent]<p[child])
      swap(p[parent],p[child]);
    parent=child;
    child=2*parent+1;
  }
}
void test1(int* p,int child,int nums)
{
  //建堆
  int parent=(child-1)/2;
  while(parent>=0)
    AdjustDown(p,parent--,nums);
  //开始排序
  int end=nums-1;
  for(end=nums-1;end>0;end--)
  {
    swap(p[0],p[end]);
    AdjustDown(p,0,end);
  }
  //打印数组
  for(int i=0;i<nums;i++)
    cout<<p[i]<<"->";
  cout<<endl;
}
void test2(int* p,int nums)
{
  //冒泡排序
  for(int i=0;i<nums-1;i++)
  {
    for(int j=0;j<nums-i-1;j++)
    {
      if(p[j]>p[j+1])
        swap(p[j],p[j+1]);
    }
  }
  //打印数组
  for(int i=0;i<nums;i++)
    cout<<p[i]<<"->";
  cout<<endl;
}
int main()
{
  int a[10]={6,4,7,8,1,3,5,2,9,0};
 //堆排序 
 //test1(a,sizeof(a)/sizeof(int)-1,sizeof(a)/sizeof(int));
 //冒泡排序
  test2(a,sizeof(a)/sizeof(int));
  return 0;
}
